便攜式移動機器人手持監(jiān)控系統(tǒng)
2014/2/20 10:09:20
目前,便攜式移動機器人全自主控制方式尚不成熟,其監(jiān)控系統(tǒng)普遍采用人在環(huán)半自主控制方式設計。為滿足攜帶、系統(tǒng)小型化、嵌入式的結構特點,故設計便攜式移動機器人手持監(jiān)控系統(tǒng),并將其用于履帶結構便攜式移動機器人實驗平臺。
功能設計
手持監(jiān)控系統(tǒng)對便攜式移動機器人起到監(jiān)視與控制的全局性作用。手持監(jiān)控系統(tǒng)可劃分為視頻圖像監(jiān)視模塊、狀態(tài)信息監(jiān)測模塊、遙控指令模塊、無線通信模塊、數字地圖交互模塊、全局路徑規(guī)劃模塊六大功能模塊(見圖1)。
視頻圖像監(jiān)視模塊對便攜式移動機器人所處環(huán)境進行視頻監(jiān)視;狀態(tài)信息監(jiān)測模塊對機器人自身狀態(tài)信息的監(jiān)測;遙控指令模塊實現基本的運動指令編碼以及發(fā)送;無線通信模塊實現運動指令、狀態(tài)信息、視頻信號等數據的無線傳輸;數字地圖交互模塊實現環(huán)境地理信息的數字化顯示及人機交互功能;全局路徑規(guī)劃模塊實現點到點的最優(yōu)路徑搜索功能。
硬件系統(tǒng)
手持監(jiān)控系統(tǒng)的硬件系統(tǒng)可劃分為若干模塊,各個模塊實現自身相對獨立的功能。
硬件結構與接口
手持監(jiān)控系統(tǒng)硬件系統(tǒng)采用基于嵌入式系統(tǒng)的PCI 總線的PC/104plus 總線結構,分為無線通信、嵌入式圖像采集、中央處理、遙控器、液晶顯示等五大模塊。無線通信模塊又劃分為無線數據傳輸和無線視頻傳輸模塊。無線數據傳輸模塊實現運動指令、狀態(tài)信息等窄帶數據無線傳輸;無線視頻傳輸模塊實現視頻圖像信號等寬帶數據無線傳輸。
硬件系統(tǒng)各模塊通過接口實現信息交換與數據共享。中央處理模塊通過PC/104plus 總線與嵌入式圖像采集模塊接口,實現模塊之間視頻圖像數據的傳輸。中央處理模塊與無線數據傳輸模塊及遙控器模塊通過串口連接。中央處理模塊通過TTL 接口與液晶顯示模塊連接。嵌入式圖像采集模塊與無線視頻傳輸模塊通過RCA 接口實現復合視頻信號的傳輸(見圖2)。
硬件模塊實現
無線數據傳輸模塊采用微功率無線數據傳送單元實現。嵌入式圖像采集模塊采用PC/104plus總線結構的嵌入式圖像采集卡實現。中央處理模塊采用PC/104plus 總線結構的單板機實現。遙控器模塊通過自行設計電路板實現按鍵掃描、指令編碼以及串口發(fā)送等功能。液晶顯示模塊采用小型彩色液晶屏實現。以上各硬件模塊實現符合手持設備小型化、便攜式的硬件要求。
軟件系統(tǒng)
手持監(jiān)控系統(tǒng)的軟件系統(tǒng)選用Windows CE(WinCE)作為嵌入式操作系統(tǒng)平臺,監(jiān)控系統(tǒng)軟件包括:操作系統(tǒng)定制、設備驅動程序開發(fā)、應用程序。應用程序又分為:鍵盤掃描模塊、串口通信模塊、視頻處理模塊、數字地圖模塊、路徑規(guī)劃模塊五大模塊(見圖3)。
操作系統(tǒng)定制
操作系統(tǒng)定制主要根據系統(tǒng)需要建立操作系統(tǒng)平臺并對其進行相應的配置。通過平臺裁剪工具Platform Builder(簡稱PB)完成。
設備驅動程序開發(fā)
WinCE的驅動程序分為:本機設備驅動程序和流接口驅動程序[5]。本機設備是指集成到目標平臺的設備,其驅動程序由原設備制造商(OEM)提供。流接口驅動程序是指連接到WinCE平臺的外部設備驅動程序,由用戶自行開發(fā)。流接口驅動程序把外部設備看作文件系統(tǒng)的特殊文件,通過文件讀取函數間接地訪問外部設備。
嵌入式圖像采集卡驅動程序分為三部分:
(1) 內核部分
實現中斷服務例程(ISR)。內核函數實現了物理中斷號與邏輯中斷標識之間的映射關系,并調用中斷服務例程,中斷服務例程在中斷發(fā)生后向內核返回中斷邏輯標識。
(2) 驅動程序部分
實現WinCE 流接口驅動模型所需要的文件操作接口函數,包括:采集卡初始化、數據讀取和采集卡句柄關閉。
(3) 應用程序部分
通過調用設備注冊函數將嵌入式圖像采集卡中斷驅動程序加載到系統(tǒng)內存,并根據采集卡初始化參數設置修改WinCE 系統(tǒng)注冊表文件。
應用程序設計
鍵盤掃描模塊及串口通信模塊單片機程序在單片機集成開發(fā)環(huán)境uVision2 下用C 語言開發(fā)外,其余模塊均在EVC(Windows CE Embedded VisualC++)下開發(fā)。
(1) 鍵盤掃描模塊
鍵盤掃描模塊主要實現單片機對薄膜鍵盤的按鍵識別及鍵值顯示功能。薄膜鍵盤屬于行列式非編碼鍵盤,按鍵的識別通常采用逐行掃描查詢法實現。程序采用軟件延時的方法處理抖動。鍵值顯示則通過單片機對液晶屏串行數據口編程實現。
(2) 串口通信模塊
串口通信模塊主要實現單板機與單片機之間的串行數據通信功能。該模塊包括單板機串口通信程序、單片機串口通信程序、串口通信協議三部分。
① 單板機串口通信程序。由于WinCE 不支持串口通信控件的使用,所以EVC 下的單板機串口通信程序開發(fā)只能通過調用文件操作函數實現。
② 單片機串口通信程序。單片機串口通信程序設計必須根據通信雙方約定設置串口工作方式及串口通信波特率。
③ 串口通信協議。串口數據包括:雙向通信測試數據、下行指令數據、上行傳感數據,而傳感數據又劃分為:速度、加速度、位置、傾角等狀態(tài)信息。為了在串口通信中正確分離和識別各種數據,通過對各種數據添加相應標志字節(jié)的方法編制串口通信協議。
(3) 視頻處理模塊
視頻處理模塊通過在EVC 下調用嵌入式圖像采集卡驅動函數實現視頻顯示與視頻控制功能。視頻顯示作為監(jiān)控系統(tǒng)子窗口嵌入到軟件系統(tǒng)用戶界面。視頻顯示主要實現便攜式移動機器人平臺所處環(huán)境信息的實時視頻顯示與更新。視頻控制主要實現對視頻采集過程的控制,其中包括:視頻采集窗口尺寸設置、視頻源制式設置、視頻數據格式選擇及視頻數據存儲等。
WinCE 不支持任何視頻加速驅動程序和底層函數,所以無法直接調用DirectX 函數,則WinCE設備上動態(tài)視頻的顯示與回放,必須開發(fā)新的設備無關位圖(DIB)快速顯示函數。采用從DGdiObject類派生的方法,使用CreateDIBSection 函數創(chuàng)建DIB 位圖,可以直接使用圖形設備接口(GDI)函數來操作DIB 位圖,以有效提高位圖顯示速度。
(4) 數字地圖模塊
數字地圖是地理信息系統(tǒng)(GIS)中的概念。數字地圖模塊實現便攜式移動機器人平臺所處地理環(huán)境信息的數字化顯示,并在此基礎上實現對數字地圖放大、縮小、漫游、查找等交互操作功能。
數字地圖模塊通過在EVC 下嵌入MapXMobile 組件實現,并最終作為監(jiān)控系統(tǒng)子窗口集成到軟件系統(tǒng)用戶界面。MapX Mobile 是基于對象鏈接嵌入(OLE)技術的ActiveX 控件,在EVC 下設置該控件的屬性、方法及響應事件即可實現地圖顯示與操作功能。
應用程序通過MapX Mobile 組件實現地圖顯示與操作,同時管理地圖數據文件。并可以單獨在嵌入式設備上運行,也能和WinCE 操作系統(tǒng)兼容。MapX Mobile 允許用戶把地圖數據帶到自身所在的任何位置,實現了移動的GIS 組件。
(5) 路徑規(guī)劃模塊
路徑規(guī)劃模塊實現基于數字地圖的點到點全局路徑規(guī)劃功能。該模塊是在數字地圖模塊查找交互操作功能的基礎上運用迪杰斯特拉(Dijkstra)算法實現最優(yōu)路徑搜索。操作者在數字地圖上選取起始點和目標點,程序通過Dijkstra 算法搜索得出兩點之間可以通行的最優(yōu)路徑,并在數字地圖上標識該最優(yōu)路徑。
Dijkstra 算法是解決最短路徑問題的理論基礎。該算法適合于計算帶權有向圖中兩節(jié)點之間的最短路徑。將數字地圖上的道路和地點抽象為有向圖的邊與節(jié)點,道路的長度作為有向圖邊的權值,從而實現數字地圖到帶權有向圖的抽象(見圖4)。
Dijkstra 算法步驟:
Step1:設集合S存放已求出最短路徑的終節(jié)點,初始狀態(tài)時,S集合只有源節(jié)點v0,即S={v0}。
Step2:令k=1,對于節(jié)點vk,計算v0到vk的距離
代價函數:
Length(k)是v0和vk之間可達連接權值之和,如果v0和vk之間不可達,則距離代價函數值無窮大。
Step3:取dist[k]值最小的節(jié)點序列保存在path[k]中,并添加vk到集合S中,即S={v0,vk}。且令k=k+1。
Step4:若vk即為目標節(jié)點,則算法結束;否則,跳轉至Step2。
則path[k]中即為源節(jié)點與目標節(jié)之間的最短路徑序列,最小dist[k]值即為源節(jié)點與目標節(jié)點之間的最短路徑距離。
設計實例
該手持監(jiān)控系統(tǒng)已應用到履帶結構便攜式移動機器人實驗平臺。在室外實驗場地測試取得較好的效果,測試過程中軟件系統(tǒng)用戶界面如圖5。用戶界面分為三部分:機器人自身狀態(tài)信息顯示、視頻圖像數據顯示、數字地圖顯示。
結論
便攜式移動機器人手持監(jiān)控系統(tǒng)在履帶結構便攜式移動機器人實驗平臺上通過測試。嵌入式硬件結構和嵌入式操作系統(tǒng)的引入符合移動智能終端設備體積小、重量輕、實時性強、可靠性高的設計要求。
功能設計
手持監(jiān)控系統(tǒng)對便攜式移動機器人起到監(jiān)視與控制的全局性作用。手持監(jiān)控系統(tǒng)可劃分為視頻圖像監(jiān)視模塊、狀態(tài)信息監(jiān)測模塊、遙控指令模塊、無線通信模塊、數字地圖交互模塊、全局路徑規(guī)劃模塊六大功能模塊(見圖1)。
視頻圖像監(jiān)視模塊對便攜式移動機器人所處環(huán)境進行視頻監(jiān)視;狀態(tài)信息監(jiān)測模塊對機器人自身狀態(tài)信息的監(jiān)測;遙控指令模塊實現基本的運動指令編碼以及發(fā)送;無線通信模塊實現運動指令、狀態(tài)信息、視頻信號等數據的無線傳輸;數字地圖交互模塊實現環(huán)境地理信息的數字化顯示及人機交互功能;全局路徑規(guī)劃模塊實現點到點的最優(yōu)路徑搜索功能。
硬件系統(tǒng)
手持監(jiān)控系統(tǒng)的硬件系統(tǒng)可劃分為若干模塊,各個模塊實現自身相對獨立的功能。
硬件結構與接口
手持監(jiān)控系統(tǒng)硬件系統(tǒng)采用基于嵌入式系統(tǒng)的PCI 總線的PC/104plus 總線結構,分為無線通信、嵌入式圖像采集、中央處理、遙控器、液晶顯示等五大模塊。無線通信模塊又劃分為無線數據傳輸和無線視頻傳輸模塊。無線數據傳輸模塊實現運動指令、狀態(tài)信息等窄帶數據無線傳輸;無線視頻傳輸模塊實現視頻圖像信號等寬帶數據無線傳輸。
硬件系統(tǒng)各模塊通過接口實現信息交換與數據共享。中央處理模塊通過PC/104plus 總線與嵌入式圖像采集模塊接口,實現模塊之間視頻圖像數據的傳輸。中央處理模塊與無線數據傳輸模塊及遙控器模塊通過串口連接。中央處理模塊通過TTL 接口與液晶顯示模塊連接。嵌入式圖像采集模塊與無線視頻傳輸模塊通過RCA 接口實現復合視頻信號的傳輸(見圖2)。
硬件模塊實現
無線數據傳輸模塊采用微功率無線數據傳送單元實現。嵌入式圖像采集模塊采用PC/104plus總線結構的嵌入式圖像采集卡實現。中央處理模塊采用PC/104plus 總線結構的單板機實現。遙控器模塊通過自行設計電路板實現按鍵掃描、指令編碼以及串口發(fā)送等功能。液晶顯示模塊采用小型彩色液晶屏實現。以上各硬件模塊實現符合手持設備小型化、便攜式的硬件要求。
軟件系統(tǒng)
手持監(jiān)控系統(tǒng)的軟件系統(tǒng)選用Windows CE(WinCE)作為嵌入式操作系統(tǒng)平臺,監(jiān)控系統(tǒng)軟件包括:操作系統(tǒng)定制、設備驅動程序開發(fā)、應用程序。應用程序又分為:鍵盤掃描模塊、串口通信模塊、視頻處理模塊、數字地圖模塊、路徑規(guī)劃模塊五大模塊(見圖3)。
操作系統(tǒng)定制
操作系統(tǒng)定制主要根據系統(tǒng)需要建立操作系統(tǒng)平臺并對其進行相應的配置。通過平臺裁剪工具Platform Builder(簡稱PB)完成。
設備驅動程序開發(fā)
WinCE的驅動程序分為:本機設備驅動程序和流接口驅動程序[5]。本機設備是指集成到目標平臺的設備,其驅動程序由原設備制造商(OEM)提供。流接口驅動程序是指連接到WinCE平臺的外部設備驅動程序,由用戶自行開發(fā)。流接口驅動程序把外部設備看作文件系統(tǒng)的特殊文件,通過文件讀取函數間接地訪問外部設備。
嵌入式圖像采集卡驅動程序分為三部分:
(1) 內核部分
實現中斷服務例程(ISR)。內核函數實現了物理中斷號與邏輯中斷標識之間的映射關系,并調用中斷服務例程,中斷服務例程在中斷發(fā)生后向內核返回中斷邏輯標識。
(2) 驅動程序部分
實現WinCE 流接口驅動模型所需要的文件操作接口函數,包括:采集卡初始化、數據讀取和采集卡句柄關閉。
(3) 應用程序部分
通過調用設備注冊函數將嵌入式圖像采集卡中斷驅動程序加載到系統(tǒng)內存,并根據采集卡初始化參數設置修改WinCE 系統(tǒng)注冊表文件。
應用程序設計
鍵盤掃描模塊及串口通信模塊單片機程序在單片機集成開發(fā)環(huán)境uVision2 下用C 語言開發(fā)外,其余模塊均在EVC(Windows CE Embedded VisualC++)下開發(fā)。
(1) 鍵盤掃描模塊
鍵盤掃描模塊主要實現單片機對薄膜鍵盤的按鍵識別及鍵值顯示功能。薄膜鍵盤屬于行列式非編碼鍵盤,按鍵的識別通常采用逐行掃描查詢法實現。程序采用軟件延時的方法處理抖動。鍵值顯示則通過單片機對液晶屏串行數據口編程實現。
(2) 串口通信模塊
串口通信模塊主要實現單板機與單片機之間的串行數據通信功能。該模塊包括單板機串口通信程序、單片機串口通信程序、串口通信協議三部分。
① 單板機串口通信程序。由于WinCE 不支持串口通信控件的使用,所以EVC 下的單板機串口通信程序開發(fā)只能通過調用文件操作函數實現。
② 單片機串口通信程序。單片機串口通信程序設計必須根據通信雙方約定設置串口工作方式及串口通信波特率。
③ 串口通信協議。串口數據包括:雙向通信測試數據、下行指令數據、上行傳感數據,而傳感數據又劃分為:速度、加速度、位置、傾角等狀態(tài)信息。為了在串口通信中正確分離和識別各種數據,通過對各種數據添加相應標志字節(jié)的方法編制串口通信協議。
(3) 視頻處理模塊
視頻處理模塊通過在EVC 下調用嵌入式圖像采集卡驅動函數實現視頻顯示與視頻控制功能。視頻顯示作為監(jiān)控系統(tǒng)子窗口嵌入到軟件系統(tǒng)用戶界面。視頻顯示主要實現便攜式移動機器人平臺所處環(huán)境信息的實時視頻顯示與更新。視頻控制主要實現對視頻采集過程的控制,其中包括:視頻采集窗口尺寸設置、視頻源制式設置、視頻數據格式選擇及視頻數據存儲等。
WinCE 不支持任何視頻加速驅動程序和底層函數,所以無法直接調用DirectX 函數,則WinCE設備上動態(tài)視頻的顯示與回放,必須開發(fā)新的設備無關位圖(DIB)快速顯示函數。采用從DGdiObject類派生的方法,使用CreateDIBSection 函數創(chuàng)建DIB 位圖,可以直接使用圖形設備接口(GDI)函數來操作DIB 位圖,以有效提高位圖顯示速度。
(4) 數字地圖模塊
數字地圖是地理信息系統(tǒng)(GIS)中的概念。數字地圖模塊實現便攜式移動機器人平臺所處地理環(huán)境信息的數字化顯示,并在此基礎上實現對數字地圖放大、縮小、漫游、查找等交互操作功能。
數字地圖模塊通過在EVC 下嵌入MapXMobile 組件實現,并最終作為監(jiān)控系統(tǒng)子窗口集成到軟件系統(tǒng)用戶界面。MapX Mobile 是基于對象鏈接嵌入(OLE)技術的ActiveX 控件,在EVC 下設置該控件的屬性、方法及響應事件即可實現地圖顯示與操作功能。
應用程序通過MapX Mobile 組件實現地圖顯示與操作,同時管理地圖數據文件。并可以單獨在嵌入式設備上運行,也能和WinCE 操作系統(tǒng)兼容。MapX Mobile 允許用戶把地圖數據帶到自身所在的任何位置,實現了移動的GIS 組件。
(5) 路徑規(guī)劃模塊
路徑規(guī)劃模塊實現基于數字地圖的點到點全局路徑規(guī)劃功能。該模塊是在數字地圖模塊查找交互操作功能的基礎上運用迪杰斯特拉(Dijkstra)算法實現最優(yōu)路徑搜索。操作者在數字地圖上選取起始點和目標點,程序通過Dijkstra 算法搜索得出兩點之間可以通行的最優(yōu)路徑,并在數字地圖上標識該最優(yōu)路徑。
Dijkstra 算法是解決最短路徑問題的理論基礎。該算法適合于計算帶權有向圖中兩節(jié)點之間的最短路徑。將數字地圖上的道路和地點抽象為有向圖的邊與節(jié)點,道路的長度作為有向圖邊的權值,從而實現數字地圖到帶權有向圖的抽象(見圖4)。
Dijkstra 算法步驟:
Step1:設集合S存放已求出最短路徑的終節(jié)點,初始狀態(tài)時,S集合只有源節(jié)點v0,即S={v0}。
Step2:令k=1,對于節(jié)點vk,計算v0到vk的距離
代價函數:
Length(k)是v0和vk之間可達連接權值之和,如果v0和vk之間不可達,則距離代價函數值無窮大。
Step3:取dist[k]值最小的節(jié)點序列保存在path[k]中,并添加vk到集合S中,即S={v0,vk}。且令k=k+1。
Step4:若vk即為目標節(jié)點,則算法結束;否則,跳轉至Step2。
則path[k]中即為源節(jié)點與目標節(jié)之間的最短路徑序列,最小dist[k]值即為源節(jié)點與目標節(jié)點之間的最短路徑距離。
設計實例
該手持監(jiān)控系統(tǒng)已應用到履帶結構便攜式移動機器人實驗平臺。在室外實驗場地測試取得較好的效果,測試過程中軟件系統(tǒng)用戶界面如圖5。用戶界面分為三部分:機器人自身狀態(tài)信息顯示、視頻圖像數據顯示、數字地圖顯示。
結論
便攜式移動機器人手持監(jiān)控系統(tǒng)在履帶結構便攜式移動機器人實驗平臺上通過測試。嵌入式硬件結構和嵌入式操作系統(tǒng)的引入符合移動智能終端設備體積小、重量輕、實時性強、可靠性高的設計要求。
提交
查看更多評論
其他資訊
工業(yè)機器人控制系統(tǒng)的開放體系結構
工業(yè)機器人離線編程及無碰撞路徑規(guī)劃系統(tǒng)的開發(fā)研究
工業(yè)機器人手臂結構的有限元分析與研究
工業(yè)機器人通用控制器研究開發(fā)
工業(yè)機器人網絡控制與編程